﻿using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DAO
{
    public class DAOLocalidad
    {
        public static List<Entidad.EntidadLocalidad> getTodas()
        {
            List<Entidad.EntidadLocalidad> lista = new List<Entidad.EntidadLocalidad>();
            AccesoDato ad = new AccesoDato();
            try
            {
                String sql = "Select id_localidad, nombre from localidad order by nombre";
                SqlDataReader dr = ad.ejecutarSql(sql, null);

                while (dr.Read())
                {
                    Entidad.EntidadLocalidad e = new Entidad.EntidadLocalidad();
                    e.id_localidad = int.Parse(dr["id_localidad"].ToString());
                    e.nombre = dr["nombre"].ToString();
                    lista.Add(e);
                }
            }
            catch (ApplicationException)
            {
                throw new ApplicationException("Error al obtener todas las localidades");
            }
            finally
            {
                ad.cerrarDR();
            }

            return lista;
        }

        public static Entidad.EntidadLocalidad buscar(int Id_localidad)
        {
            Entidad.EntidadLocalidad e = new Entidad.EntidadLocalidad();
            AccesoDato ad = new AccesoDato();
            try
            {
                String sql = "Select Id_localidad, nombre from localidad where Id_localidad = @Id_localidad";
                SqlParameter parametro = new SqlParameter("Id_localidad", Id_localidad);
                List<SqlParameter> parametros = new List<SqlParameter>();
                parametros.Add(new SqlParameter("Id_Localidad", Id_localidad));
                SqlDataReader dr = ad.ejecutarSql(sql, parametros);
                while (dr.Read())
                {
                    e.id_localidad = int.Parse(dr["Id_localidad"].ToString());
                    e.nombre = dr["nombre"].ToString();
                }
            }
            catch (ApplicationException)
            {

                throw new ApplicationException("Error al obtener la localidad");
            }
            finally
            {
                ad.cerrarDR();
            }
            return e;
        }
    }
}
